package com.nit.lab.vote.service.vote;

import com.nit.lab.vote.dto.utils.TableReqDTO;
import com.nit.lab.vote.dto.utils.TableRspDTO;
import com.nit.lab.vote.dto.vote.CPDTO;
import com.nit.lab.vote.dto.vote.CandidateDTO;
import com.nit.lab.vote.dto.utils.OpResultDTO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface CandidateService {

    /**
     * @Description: 添加候选人
     * @Date: 2020/12/10
     */
    TableRspDTO list4table(TableReqDTO tableReqDTO) throws Exception;

    /**
     * @Description: 添加候选人
     * @Date: 2020/12/10
     */
    OpResultDTO add(CandidateDTO candidateDTO) throws Exception;

    /**
     * @Description: 修改候选人
     * @Date: 2020/12/12
     */
    OpResultDTO update(CandidateDTO candidateDTO) throws Exception;

    /**
     * @Description: 修改候选人
     * @Date: 2020/12/12
     */
    OpResultDTO remove(CandidateDTO candidateDTO) throws Exception;



    /**
     * @Description: 根据projectId添加候选人
     * @Date: 2020/12/12
     */
    TableRspDTO queryByProject(TableReqDTO tableReqDTO) throws Exception;


    /**
     * @Description: 编辑候选人
     * @Date: 2020/12/12
     */
    TableRspDTO queryAllProject(TableReqDTO tableReqDTO) throws Exception;

    /**
     * @Description: 为项目添加候选人
     * @Date: 2020/12/12
     */
    OpResultDTO addByProject(CPDTO cpDTO) throws Exception;

    /**
     * @Description: 为项目删除候选人
     * @Date: 2020/12/12
     */
    OpResultDTO removeByProject(CPDTO cpDTO) throws Exception;



    /**
     * @Description: 查询项目候选人的附件
     * @Date: 2020/12/15
     */
    OpResultDTO queryFile(CPDTO cpDTO) throws Exception;

    /**
     * @Description: 为项目候选人上传附件
     * @Date: 2020/12/13
     */
    OpResultDTO addFile(CPDTO cpDTO, MultipartFile file) throws Exception;

    /**
     * @Description: 删除候选人附件
     * @Date: 2020/12/13
     */
    OpResultDTO removeFile(String file) throws Exception;
}
